快排和归并排序哪个更快 |
您所在的位置:网站首页 › 排序算法 快排还是慢排 › 快排和归并排序哪个更快 |
在看算法图解的过程中,看到书中说时间复杂度同为O(nlogn),快排比归并排序快的原因是快排查找的常量要比归并小。 看完还不是很理解,去网上查了下资料,看了几种回答,还是《数据结构与算法分析:C++描述》中说的比较清楚,主要是因为: 1.C++模板有很强的inline优化机制,比较操作相对于赋值(移动)操作要快的多(尤其是元素较大时) 2.另一方面,一般情况下,归并排序的比较次数小于快速排序的比较次数,而移动次数一般多于快速排序的移动次数,二者大约都是2~3倍的差距。 因为这样,在C++中快排要比归并排序更快,但其实在java中恰恰相反,移动(赋值)一般比较快。 参考回答: java中归并排序比快速排序快吗? - 知乎 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |